package solicitudes.modelo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Solicitud {

	@Id
	Long id;
	
	@Temporal( TemporalType.DATE )
	Date fecha;
	
	String asunto;
	
	String descripcion;
		
	@ManyToOne
	@JoinColumn( name="solicitante_id" )
	Usuario solicitante;
	
	@OneToMany(cascade={ CascadeType.ALL, CascadeType.REMOVE}, fetch=FetchType.LAZY, mappedBy="solicitud" )
	List<Atencion> atenciones = new ArrayList<Atencion>();
	
	@ManyToOne
	@JoinColumn( name="estado_id" )
	Estado estado;
	
	public Solicitud() {	}
	
	public Long getId() {
		return id;
	}
	
	public void setId(Long id) {
		this.id = id;
	}
	
	public Date getFecha() {
		return fecha;
	}
	
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	
	public String getAsunto() {
		return asunto;
	}
	
	public void setAsunto(String asunto) {
		this.asunto = asunto;
	}
	
	public String getDescripcion() {
		return descripcion;
	}
	
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Usuario getSolicitante() {
		return solicitante;
	}
	
	public void setSolicitante(Usuario solicitante) {
		this.solicitante = solicitante;
	}
	
	public List<Atencion> getAtenciones() {
		return atenciones;
	}
	
	public void setAtenciones(List<Atencion> atenciones) {
		this.atenciones = atenciones;
	}
	
	public Estado getEstado() {
		return estado;
	}
	
	public void setEstado(Estado estado) {
		this.estado = estado;
	}
	
}
